axios.defaults.baseURL='http://localhost:8081'

//为了后端校验是否已经登录，只要用axios的请求都要携带token
//token是去redis中查找logininfo是否存在的key，用户登录过才将logininfo存入redis中
axios.interceptors.request.use(config=>{
    let token = localStorage.getItem("token")
    if(token){
        //将token放入请求头中
        config.headers["token"] = token;
    }
    return config;
},error => {
    Promise.reject(error)
})
//axios后置拦截器：当后端进行登录拦截时，从后端返回前端时会先来执行这里的代码
axios.interceptors.response.use(config=>{
    //config是用来接收后端返回的信息，data:"{\"success\":false,\"message\":\"noLogin\"}"
    let data = config.data;
    if(!data.success && "noLogin"===data.message) {
        localStorage.removeItem("token");
        localStorage.removeItem("loginInfo");
        alert("您还没有登录，请登录后再访问！");
        location.href="/index.html";
    }
    return config;
},error => {
    Promise.reject(error)
})

Vue.prototype.$http = axios

/**
 * 字符串转对象
 * @param url
 */
function str2Obj(url) {
    // 以？分隔取数组中第二个元素：即获取地址中携带的参数
    var paramStr = url.split("?")[1];
    var paramObj={};//定义一个对象
    if (paramStr){
        //如果有参数，因为携带的参数不止一个可能存在多个，所以再次分隔取到每个参数
        var paramArray = paramStr.split("&");
        //循环参数数组
        $.each(paramArray,function (indxe,param){
            //取出参数的字段和对应的值
            var paramName = param.split("=")[0];
            var paramValue = param.split("=")[1];
            //将参数转化为json对象
            paramObj[paramName]=paramValue;
        });
    }
    return paramObj;
}
//前端页面拦截器  就是尝试用localstorage获取用户，如果没有获取到，提示登录后再操作
let excludeUrls = ['/index.html','/callback.html','/binder.html'];
let url = location.href; //http://localhost:8081/about.html
let isRun = false;
//放行路径
//http://localhost:8081/需要单独判断
if (url==="http://localhost:80/"||url=="http://wx.rongcarservice.com/") {
    isRun = true;
} else{
    //不是特殊首地址，就需要进行判断再放行
    for (let i = 0; i < excludeUrls.length; i++) {
        //url.indexOf(excludeUrls[i])：找到url中包含放行规则中字符串首次出现的下标
        if (url.indexOf(excludeUrls[i]) > -1) {
            isRun = true;
            break;//每次只有一个地址过来，只要找到就结束循环
        }
    }
}
//拦截：如果isRun=false
if (!isRun) {
    //去localStorage中获取登录用户信息
    let user = localStorage.getItem("logininfo");
    if (!user){
        //不存在登录用户信息就提示登录
        alert("您还没有登录，请登录后再访问！");
        location.href="/index.html";
    }
}